package com.huahua.api.entity.vo.tablecomparison;

import com.huahua.api.enums.RowStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 单行差异信息
 *
 * @author Huahua-Ai
 * @date 2025-07-12 22:34:00
 * @description 表示文本对比中单行的差异信息
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LineDiff {

    /**
     * 行号（在原文本中的行号，如果是新增行则为-1）
     */
    private int lineNumber;

    /**
     * 行内容（原始内容）
     */
    private String content;

    /**
     * 新行内容（仅在status为MODIFIED时使用）
     */
    private String content2;

    /**
     * 行状态（ADDED, DELETED, UNCHANGED, MODIFIED）
     */
    private RowStatus status;

    /**
     * 在结果中的位置索引
     */
    private int resultIndex;

    /**
     * 在新文本中的行号（如果是删除行则为-1）
     */
    private int lineNumber2 = -1;

    /**
     * 字符级差异列表（可选）
     * 当status为MODIFIED时，包含该行内的字符级差异
     */
    private List<CharacterDifference> characterDifferences;

    /**
     * 是否是上下文行（未改变但需要显示的行）
     */
    private boolean contextLine;
}
